<?php

	if (!isset($_GET['dev'])) {
		error_reporting(0);
	}


	define("SET", true);

	/* load global functions */
	require_once("../global/functions/error.php");
	require_once("../global/functions/config.php");
	require_once("../global/functions/xmlencode.php");

	/* load settings */
	loadConfig("../../");



	if ($_SERVER['HTTP_HOST'] != "10.0.0.1" AND !isset($_GET['dev'])) {
		@header("Location: http://10.0.0.1/index.php?url=".urlencode($_SERVER['HTTP_HOST']."/".$_GET['url']));
	}







		function show_login() {
			
			global $_error, $_GET;
			
			include "header.php";
	
			echo '

				<h1>Anmeldung für bereits registrierte Benutzer:</h1> 

				<form action="http://10.0.0.1/index.php'.((isset($_GET['dev']))?"?dev=1":"").'" method="post">

					<table class="noborder">

						<tr><th>Benutzername:</th><td><input type="text" name="username" value="'.((isset($_POST['username']))?$_POST['username']:"").'" /></td></tr>
						<tr><th>Passwort:</th><td><input type="password" name="password" value="" /></td></tr>
						<tr><th><input name="url" type="hidden" value="'.((isset($_GET['url']))?$_GET['url']:"").''.((isset($_POST['url']))?$_POST['url']:"").'"></th><td><input type="submit" value="Anmelden" /></td></tr>

					</table>

				</form>
				
				<br />
				
				<a href="http://10.0.0.1:81/index.php?f=lostpw" class="nextlink3">Benutzername oder Passwort vergessen</a>
				<a href="http://10.0.0.1:81/index.php?f=changepw" class="nextlink3">Passwort ändern</a>

				<p>
					<strong>Bitte beachten:</strong><br />
					Um einen fehlerfreien Betrieb des Netzwerks zu gewährleisten und aus rechtlichen Gründen werden Protokolle über die Nutzung des Netzwerks angelegt. Die Protokolle enthalten Daten über An- und Abmeldungen am WLAN sowie über die aufgerufenen Internetseiten der Nutzer. In Webformularen angegebene Daten und die Inhalte der angeforderten Internetseiten werden nicht gespeichert.<br />
					Einige Internetseiten wurden gesperrt. Die Umgehung dieser Sperren durch Proxies oder ähnliche Software ist untersagt!
				</p>


				<h1>Registrierung für neue Benutzer:</h1>

				<p>Bevor Sie das Funknetzwerk nutzen können, müssen Sie sich registrieren.<br />
				Registrieren können sich: <strong>'.config("register_allowed_persons").'</strong>.</p>

				


			';
			
			if (config("slave")) {
				echo '<p><a href="'.config("master_data_address").'">Klicken Sie hier, um zur Registrierung zu gelangen.</a></p>';
			} else {
				echo '<p><a href="http://10.0.0.1:81">Klicken Sie hier, um zur Registrierung zu gelangen.</a></p>';
			}
			
			include "footer.php";
		
		}
		
		
		
		
		function checkUsername($username)
		{

			if ($username == preg_replace('@[^a-zA-Z0-9\_\.\-]@is', '', $username)) {
				return true;
			} else {
				return false;
			}

		}
		
		
		
		if (isset($_GET['mac'])) {
			
			
			//show mac address of client
			
			// Path to the arp command on the local server
			$arp = "/usr/sbin/arp";

			// Attempt to get the client's mac address
			$mac = shell_exec("$arp -a ".$_SERVER['REMOTE_ADDR']);
			preg_match('/..:..:..:..:..:../',$mac , $matches);
			@$mac = $matches[0];
			
			include "header.php";
			echo $mac;
			include "footer.php";
			
		
		} elseif (!isset($_POST['username'])) {
			
			show_login();
			
		} else {
		
			if (checkUsername($_POST['username'])) {
				
				if (file_exists(config("root")."data/users.xml")) {

					$xmlObj = simplexml_load_file(config("root")."data/users.xml");

					$usersObj = $xmlObj->xpath("user/username[text()='".strtolower($_POST['username'])."']/..");

					if ($usersObj) {

						if ((string) xmldecode($usersObj[0]->password) == $_POST['password']) {

							if ($usersObj[0]->active == "1" AND $usersObj[0]->locked == "0") {

								/* login */

								if (!isset($_GET['dev'])) {

									// Path to the arp command on the local server
									$arp = "/usr/sbin/arp";

									// Attempt to get the client's mac address
									$mac = shell_exec("$arp -a ".$_SERVER['REMOTE_ADDR']);
									preg_match('/..:..:..:..:..:../',$mac , $matches);
									@$mac = $matches[0];
									if (!isset($mac)) {
										error("Fehler beim der Anmeldung!");
										show_login();
									} else {

										// Add MAC to firewall
									    exec("sudo iptables -I internet 1 -t nat -m mac --mac-source $mac -j RETURN");

										// The following line removes connection tracking for the PC
									    // This clears any previous (incorrect) route info for the redirection
									    exec("sudo rmtrack ".$_SERVER['REMOTE_ADDR']);


										// write log
										file_put_contents($_config['root']."data/log", "LOGIN ".time()." [".date("d.m.Y - H:i:s")."] ".$_POST['username']." ".$_SERVER['REMOTE_ADDR']." ".$mac."\n",FILE_APPEND + LOCK_EX);

									    sleep(1);

										if (isset($_POST['url']) AND $_POST['url'] != "") {
											header("Location: http://".$_POST['url']);
										} else {
											header("Location: ".config("redirect_url"));
										}

									}


								} else {
									echo "DEV: login";
								}

							} else {
								error("Ihr Konto wurde noch nicht freigeschaltet oder ist gesperrt.");
								show_login();
							}

						} else {
							error("Benutzername und/oder Passwort falsch!");
							show_login();
						}

					} else {
						error("Benutzername und/oder Passwort falsch!");
						show_login();
					}

				} else {
					error("Benutzerliste nicht gefunden. Bitte versuchen Sie es später noch einmal.");
					show_login();
				}
				
			} else {
				error("Benutzername und/oder Passwort falsch!");
				show_login();
			}
			
		}
	
		
	


?>
